package com.zretc.emptraining.dao;

import com.zretc.emptraining.dbtools.PageData;
import com.zretc.emptraining.entity.PerCourse;

public interface PerCourseDao {
	/**
	 * 员工申请课程（添加）
	 * 
	 * @param managerApp
	 * @return true成功 false失败
	 */
	public boolean addPerCourse(PerCourse perCourse);

	/**
	 * 主管页面 未通过的时候取消课程申请
	 * 
	 * @param managerappNo
	 * @return
	 */
	public boolean delPerCourse(int perCourseNo);

	/**
	 * 部门主管通过申请时间
	 * 
	 * @param managerappNo
	 * @return
	 */
	public boolean passPerCourse(int perCourseNo);

	/**
	 * 部门主管拒绝
	 * 
	 * @param managerappNo
	 * @return
	 */
	public boolean refusePerCourse(int perCourseNo);

	/**
	 * 根据员工编号进行查询
	 * 
	 * @param deptname
	 * @return
	 */
	public PageData<PerCourse> getPerCourseByempNo(int page, int pagesize, int empNo);

	/**
	 * 查询某个部门的所有选课信息
	 * 
	 * @param deptname
	 * @return
	 */
	public PageData<PerCourse> getPerCourseBydeptNo(int page, int pagesize, int deptNo);

	/**
	 * 查询所有的个人申请表的信息
	 * 
	 * @param page
	 * @param pageSize
	 * @return
	 */
	public PageData<PerCourse> getPerCourse(int page, int pageSize);

	/**
	 * 根据计划编号查询
	 * 
	 * @param page
	 * @param pagesize
	 * @param cpNo
	 * @return
	 */
	public PageData<PerCourse> getPerCourseByCpNo(int page, int pagesize, int cpNo);

	/**
	 * 管理员进行删除
	 * 
	 * @param perCourseNo
	 * @return
	 */
	public boolean delPerCourseByAdmin(int perCourseNo);

	/**
	 * 修改
	 * 
	 * @param perCourse
	 * @return
	 */
	public boolean updatePerCourse(PerCourse perCourse);

	/**
	 * 查询某个部门的某个员工的个人课程信息表
	 * 
	 * @param page
	 * @param pagesize
	 * @param deptNo
	 * @param empNo
	 * @return
	 */
	public PageData<PerCourse> getPerCourseBydeptNoWithEmpNo(int page, int pagesize, int deptNo, int empNo);
	/**
	 * 判断是员工是否已经申请了某个课程计划  或者 已经被强制申请了
	 * @param empNo
	 * @param CpNo
	 * @return
	 */
	public boolean wExists(int empNo, int CpNo);
	/**
	 * 判断courseplan中的状态
	 * @param cpNo
	 * @return
	 */
	public boolean wCourseCanAdd(int cpNo);

}
